var dateRegex = /(?=(YYYY|YY|MM|DD|HH|mm|ss|ms))\1([:\/]*)/g;
var timeSpan = {
  YYYY: ["getFullYear", 4],
  YY: ["getFullYear", 2],
  MM: ["getMonth", 2, 1], // getMonth is zero-based, thus the extra increment field
  DD: ["getDate", 2],
  HH: ["getHours", 2],
  mm: ["getMinutes", 2],
  ss: ["getSeconds", 2],
  ms: ["getMilliseconds", 3],
};
module.exports = {
  hasExec(startTime) {
    var now = Date.now();
    return (now - startTime) / 1000;
  },
  str(str, date, utc) {
    if (typeof str !== "string") {
      date = str;
      // str = "YYYY-MM-DD HH:mm:ss";
      str = "YYYY-MM-DD";
    }

    if (!date) date = new Date();
    return str.replace(dateRegex, function (match, key, rest) {
      var args = timeSpan[key];
      var name = args[0];
      var chars = args[1];
      if (utc === true) name = "getUTC" + name.slice(3);
      var val = "00" + String(date[name]() + (args[2] || 0));
      return val.slice(-chars) + (rest || "");
    });
  },
};
